// pages/bind-partner/bind-partner.js
import { partnerApi } from '../../services/api';

Page({
  data: {
    isBound: false,
    partnerId: '',
    partnerInfo: {
      nickName: '',
      avatarUrl: '/images/avatar-fox.png'
    },
    userInfo: {
      id: '',
      nickName: '',
      avatarUrl: '/images/avatar-default.png'
    }
  },

  onLoad() {
    this.loadUserInfo();
    this.checkBindingStatus();
  },

  // 加载用户信息
  loadUserInfo() {
    const userInfo = wx.getStorageSync('userInfo');
    if (userInfo) {
      this.setData({
        'userInfo.id': userInfo.id || '',
        'userInfo.nickName': userInfo.nickName || '未知用户',
        'userInfo.avatarUrl': userInfo.avatarUrl || '/images/avatar-default.png'
      });
    }
  },

  // 检查绑定状态
  async checkBindingStatus() {
    try {
      // 从API获取伴侣信息
      const partnerData = await partnerApi.getPartnerInfo();
      console.log('伴侣信息响应:', partnerData);
      
      // 检查响应是否成功
      if (partnerData && partnerData.success && partnerData.data) {
        this.setData({
          isBound: true,
          partnerInfo: {
            nickName: partnerData.data.nickname || '未知用户',
            avatarUrl: partnerData.data.avatarUrl || '/images/avatar-fox.png'
          }
        });
        
        // 保存到本地存储
        wx.setStorageSync('partnerInfo', partnerData.data);
      } else {
        console.log('未绑定伴侣或获取伴侣信息失败:', partnerData);
        // 清除本地存储中的伴侣信息
        wx.removeStorageSync('partnerInfo');
        // 重置界面状态
        this.setData({
          isBound: false,
          partnerInfo: {
            nickName: '未绑定',
            avatarUrl: '/images/avatar-fox.png'
          }
        });
      }
    } catch (error) {
      console.error('获取伴侣信息失败:', error);
      
      // 降级到本地存储
      const partnerInfo = wx.getStorageSync('partnerInfo');
      if (partnerInfo) {
        this.setData({
          isBound: true,
          partnerInfo: {
            nickName: partnerInfo.nickname || partnerInfo.nickName || '未知用户',
            avatarUrl: partnerInfo.avatarUrl || '/images/avatar-fox.png'
          }
        });
      }
    }
  },

  // 输入对方ID
  onPartnerIdInput(e) {
    this.setData({
      partnerId: e.detail.value
    });
  },

  // 绑定情侣
  bindPartner() {
    const { partnerId, userInfo } = this.data;
    
    if (!partnerId) {
      wx.showToast({
        title: '请输入对方的用户ID',
        icon: 'none'
      });
      return;
    }
    
    if (partnerId === userInfo.id) {
      wx.showToast({
        title: '不能绑定自己的ID',
        icon: 'none'
      });
      return;
    }
    
    // 显示加载提示
    wx.showLoading({
      title: '正在绑定...'
    });
    
    // 调用API绑定情侣
    partnerApi.bindPartner(partnerId)
      .then(response => {
        wx.hideLoading();
        
        if (response && response.data) {
          // 绑定成功
          this.setData({
            isBound: true,
            partnerInfo: {
              nickName: response.data.nickname || '未知用户',
              avatarUrl: response.data.avatarUrl || '/images/avatar-fox.png'
            }
          });
          
          // 保存到本地存储
          wx.setStorageSync('partnerInfo', response.data);
          
          wx.showToast({
            title: '绑定成功',
            icon: 'success'
          });
          
          // 更新全局数据
          const app = getApp();
          if (app) {
            app.globalData.partnerInfo = response.data;
          }
        } else {
          wx.showToast({
            title: response.message || '绑定失败',
            icon: 'none'
          });
        }
      })
      .catch(error => {
        wx.hideLoading();
        console.error('绑定情侣失败:', error);
        wx.showToast({
          title: '绑定失败，请稍后重试',
          icon: 'none'
        });
      });
  },

  // 解除绑定
  unbindPartner() {
    wx.showModal({
      title: '确认解除绑定',
      content: '您确定要解除与当前情侣的绑定关系吗？',
      confirmColor: '#ff6b6b',
      success: (res) => {
        if (res.confirm) {
          // 显示加载提示
          wx.showLoading({
            title: '正在解除绑定...'
          });
          
          // 调用API解除绑定
          partnerApi.unbindPartner()
            .then(response => {
              wx.hideLoading();
              
              if (response && response.success) {
                // 解除绑定成功
                wx.removeStorageSync('partnerInfo');
                
                this.setData({
                  isBound: false,
                  partnerInfo: {
                    nickName: '',
                    avatarUrl: '/images/avatar-fox.png'
                  }
                });
                
                wx.showToast({
                  title: '已解除绑定',
                  icon: 'success'
                });
                
                // 更新全局数据
                const app = getApp();
                if (app) {
                  app.globalData.partnerInfo = null;
                }
              } else {
                wx.showToast({
                  title: response.message || '解除绑定失败',
                  icon: 'none'
                });
              }
            })
            .catch(error => {
              wx.hideLoading();
              console.error('解除绑定失败:', error);
              wx.showToast({
                title: '解除绑定失败，请稍后重试',
                icon: 'none'
              });
            });
        }
      }
    });
  }
});